home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Online / RFCs / rfc / rfc2217.txt < prev    next >
Text File  |  1997-10-09  |  32KB  |  788 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           G. Clark
  8. Request for Comments: 2217                           Cisco Systems, Inc.
  9. Category: Experimental                                      October 1997
  10.  
  11.  
  12.                      Telnet Com Port Control Option
  13.  
  14.  
  15. Status of this Memo
  16.  
  17.    This memo defines an Experimental Protocol for the Internet
  18.    community.  This memo does not specify an Internet standard of any
  19.    kind.  Discussion and suggestions for improvement are requested.
  20.    Distribution of this memo is unlimited.
  21.  
  22. Introduction
  23.  
  24.    This memo proposes a protocol to allow greater use of modems attached
  25.    to a network for outbound dialing purposes.
  26.  
  27. Table of Contents
  28.        1. Negotiation of the Com Port
  29.           Control Option Protocol          ..................   5
  30.        2. Com Port Configuration Commands  ..................   6
  31.             Version
  32.             Baud Rate
  33.             Data Bit Size
  34.             Parity
  35.             Stop Bit size
  36.        3. Special Com Port Control Commands .................   8
  37.             XON/XOFF Flow Control
  38.             HARDWARE Flow Control
  39.             BREAK Signal
  40.             DTR Signal
  41.             RTS Signal
  42.      4. Notification of Com Port and     ..................    12
  43.         Modem Line Changes
  44.      5. Flow Control                     ..................    13
  45.      6. Security Considerations          ..................    13
  46.      7. Author's Address                 ..................    14
  47.      8. Reference Section                ..................    14
  48.  
  49. Discussion
  50.  
  51.    The Telnet protocol defines an interactive, character-oriented
  52.    communications session.  It was originally designed to establish a
  53.    session between a client and a remote login service running on a host
  54.    [5].
  55.  
  56.  
  57.  
  58. Clark                         Experimental                      [Page 1]
  59.  
  60. RFC 2217          Telnet Com Port Control Option            October 1997
  61.  
  62.  
  63.    Many new business functions require a person to connect to remote
  64.    services to retrieve or deposit information.  By in large, these
  65.    remote services are accessed via an async dial up connection.  This
  66.    new class of functions include:
  67.  
  68.      -  dial up connections to the Internet
  69.      -  connecting to bulletin boards
  70.      -  connecting to internal and external databases
  71.      -  sending and receiving faxes.
  72.  
  73.    The general nature of this new class of function requires an
  74.    interactive, character-oriented communications session via an async
  75.    modem.  This is typically known as outbound modem dialing.
  76.  
  77.    To help defer the cost of installing and maintaining additional phone
  78.    lines which may be used very little per person, many equipment
  79.    manufacturers have added the ability to establish a Telnet session
  80.    directly to the outbound ports on many of the most popular access
  81.    servers and routers, here after referred to as access servers.
  82.  
  83.    However, the current Telnet protocol definitions are not sufficient
  84.    to fully support this new use.  There are three new areas of
  85.    functionality which need to be added to the Telnet protocol to
  86.    successfully support the needs of outbound modem dialing.  These are:
  87.  
  88.       -  The ability for the client to send com port configuration
  89.          information to the access server which is connected to the
  90.          outbound modem.  This is needed to ensure the data being
  91.          transmitted and received by the modem is formatted correctly
  92.          at the byte level.
  93.  
  94.       -  The ability for the access server to inform the client of any
  95.          modem line or signal changes such as RLSD changes (carrier
  96.          detect).  This information is vital, since many client software
  97.          packages use this information to determine if a session with the
  98.          remote service has been established.  RLSD changes are also
  99.          used for signaling in Class I faxing [6].
  100.  
  101.       -  The ability to manage flow control between the client and
  102.          the access server which does not interfere with the flow
  103.          control mechanisms used by the session between the client and
  104.          the remote service.  Unfortunately RFC 1372 "Telnet Remote
  105.          Flow Control Option" [2] can not be used for this purpose
  106.          because it relies on sending XON/XOFF style characters which
  107.          maybe transmitted or received as a normal course of the
  108.          client / remote service session.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Clark                         Experimental                      [Page 2]
  115.  
  116. RFC 2217          Telnet Com Port Control Option            October 1997
  117.  
  118.  
  119.    Though this discussion has focused on outbound modem dialing as the
  120.    primary use of this protocol, the protocol can also be used for any
  121.    serial device attached to an access server.  Such devices could be:
  122.  
  123.      -  serial printers
  124.      -  plotters
  125.      -  monitoring devices such as pipe line monitors or medical
  126.         monitors
  127.      -  general office equipment such as photo-copiers and cash
  128.         registers
  129.  
  130. Definition of Terms
  131.  
  132.    Access Server - Any network device which accepts Telnet sessions
  133.                    and passes the data received to a com port, and
  134.                    passes data received from the com port to the client
  135.                    via the Telnet session.
  136.  
  137.    Baud Rate  -  For the purposes of this document, baud rate will
  138.                  mean the communications of data in bits per second.
  139.  
  140.    Client - Any network device which initiates a Telnet session
  141.             to an access server.
  142.  
  143.    Outbound - Transmission of data from the modem attached to the
  144.               access server to a remote service.
  145.  
  146.    Inbound - Transmission of data from the remote service to the
  147.              modem attached to the access server.
  148.  
  149.    Remove Service - Any service which accepts dial-up connections,
  150.                     including fax machines.
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Clark                         Experimental                      [Page 3]
  171.  
  172. RFC 2217          Telnet Com Port Control Option            October 1997
  173.  
  174.  
  175. Illustration
  176.  
  177.   =====================
  178.   |                   |
  179.   |      CLIENT       |\
  180.   |                   | \ < ---- Local Area /
  181.   =====================  \       Enterprise Network
  182.                           \
  183.                            \
  184.                          =============================
  185.                          |      Telnet Interface     |
  186.                          |                  |        |
  187.                          |                  |        |
  188.                          |  ACCESS SERVER   |        |
  189.                          |                  |        |
  190.                          |                  |        |
  191.                          |     Com Port Interface    |
  192.                          =============================
  193.                                       |
  194.                                       |
  195.                               ==================
  196.                               |                |
  197.                               |      MODEM     |
  198.                               |                |
  199.                               ==================
  200.                                       |
  201.   Access to Remote Service            |
  202.   most commonly Public Switched ----->|
  203.   Network                             |
  204.                                       |
  205.                                       |
  206.                             ======================
  207.   Could be Internet Service |                    |
  208.   Provider, Bulletin Board  |                    |
  209.   or FAX machine            |    REMOTE SERVICE  |
  210.                             |                    |
  211.                             |                    |
  212.                             ======================
  213.  
  214.  
  215.   Command Names and Codes:
  216.        COM-PORT-OPTION       44
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Clark                         Experimental                      [Page 4]
  227.  
  228. RFC 2217          Telnet Com Port Control Option            October 1997
  229.  
  230.  
  231.                    Client to Access Server   Access Server to Client
  232.        SIGNATURE            text                      text
  233.        SET-BAUDRATE            1                      101
  234.        SET-DATASIZE            2                      102
  235.        SET-PARITY              3                      103
  236.        SET-STOPSIZE            4                      104
  237.        SET-CONTROL             5                      105
  238.        NOTIFY-LINESTATE        6                      106
  239.        NOTIFY-MODEMSTATE       7                      107
  240.        FLOWCONTROL-SUSPEND     8                      108
  241.        FLOWCONTROL-RESUME      9                      109
  242.        SET-LINESTATE-MASK     10                      110
  243.        SET-MODEMSTATE-MASK    11                      111
  244.        PURGE-DATA             12                      112
  245.  
  246.    Discussion: As initially proposed, com port configuration
  247.                commands are only sent from the client to the access
  248.                server.  There is no current vision that the access
  249.                server would initiate the use of a com port configuration
  250.                command, only the notify commands. However, to allow for
  251.                access server initiated com port configurations different
  252.                command values have been established.
  253.  
  254. 1. Negotiation of the Com Port Control Option Protocol
  255.  
  256.    The negotiation of the com port control option protocol uses the
  257.    standard Telnet negotiation protocol mechanism:
  258.  
  259.      IAC WILL COM-PORT-OPTION
  260.        The sender of this command is willing to send com port
  261.        control option commands.
  262.      IAC WONT COM-PORT-OPTION
  263.        The sender of this command refuses to send com port
  264.        control option commands.
  265.      IAC DO COM-PORT-OPTION
  266.        The sender of this command is willing to accept com port
  267.        control option commands.
  268.      IAC DONT COM-PORT-OPTION
  269.        The sender of this command refuses to accept com port control
  270.        options commands.
  271.  
  272.     Typically a client will use WILL and WONT, while an access server
  273.     will use DO and DONT.
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Clark                         Experimental                      [Page 5]
  283.  
  284. RFC 2217          Telnet Com Port Control Option            October 1997
  285.  
  286.  
  287. 2. Com Port Configuration Commands
  288.  
  289.    Once DO and WILL have been negotiated, the client may send any of the
  290.    following commands. The client can send these commands at any time
  291.    and multiple times throughout the Telnet session. Each command
  292.    transmitted from the client to the access server must be acknowledged
  293.    once the command has been processed by the access server.  This
  294.    confirmation informs the client of the value set at the access server
  295.    after the processing of the command. This acknowledgment is not used
  296.    to acknowledge the receipt of the command, which is handled at the
  297.    TCP protocol layer.  Its purpose is to inform the client of the value
  298.    in use, which may be different than the value requested in the
  299.    client's command.  For example, the client may request a baud rate
  300.    higher than the access service can provide.  If an acknowledgment is
  301.    not received by the client within a reasonable time (such as twice
  302.    the delay acknowledgment timer), the client may wish to resend the
  303.    command or terminate the session.
  304.  
  305.    Though the commands may be sent from the client to the access server
  306.    in any sequence, there are sequences which may result in invalid
  307.    configurations for the com port (for example: EVEN parity is only
  308.    valid if the data size is set to less than 8 bits). Thus it is
  309.    recommended that commands be issued in the following sequence:
  310.  
  311.       1. SET-BAUDRATE
  312.       2. SET-DATASIZE
  313.       3. SET-PARITY
  314.       4. SET-STOPSIZE
  315.  
  316.      IAC SB COM-PORT-OPTION SIGNATURE <text> IAC SE
  317.        This command may be sent by either the client or the access
  318.        server to exchange signature information.  If the command is
  319.        sent without <text> it is a request from the sender to receive
  320.        the signature text of the receiver.  The text may be a
  321.        combination of any characters.  There is no structure to the
  322.        <text> field.  It may contain manufacturer information, version
  323.        number information, or any other information desired.  If an
  324.        IAC character appears in the text it must be translated to
  325.        IAC-IAC to avoid conflict with the IAC which terminates
  326.        the command.
  327.  
  328.      IAC SB COM-PORT-OPTION SET-BAUD <value(4)> IAC SE
  329.        This command is sent by the client to the access server to set
  330.        the baud rate of the com port. The value is four octets (4 bytes).
  331.        The value is represented in network standard format.  The value
  332.        is the baud rate being requested.  A special case is the value 0.
  333.        If the value is zero the client is requesting the current baud
  334.        rate of the com port on the access server.
  335.  
  336.  
  337.  
  338. Clark                         Experimental                      [Page 6]
  339.  
  340. RFC 2217          Telnet Com Port Control Option            October 1997
  341.  
  342.  
  343.        Discussion: Though baud rates used today form a very sparse space,
  344.                    and the initial version of the option used an index
  345.                    based baud rate table, after much discussion with a
  346.                    number of groups it has been determined that the
  347.                    actual baud rate should be used.  There are two main
  348.                    reasons. 1) It limits the number of updates to the
  349.                    option as faster baud rates come into use,
  350.                    2) It provides the greatest amount of flexibility
  351.                    in the selection of the baud rates.
  352.  
  353.      IAC SB COM-PORT-OPTION SET-DATASIZE <value> IAC SE
  354.        This command is sent by the client to the access server to set
  355.        the data bit size. The command can also be sent to query the
  356.        current data bit size. The value is one octet (byte). The value
  357.        is an index into the following value table:
  358.  
  359.            Value       Data Bit Size
  360.              0           Request Current Data Bit Size
  361.              1           Available for Future Use
  362.              2           Available for Future Use
  363.              3           Available for Future Use
  364.              4           Available for Future Use
  365.              5           5
  366.              6           6
  367.              7           7
  368.              8           8
  369.              9-127       Available for Future Use
  370.  
  371.        Discussion: There are only eight possible values for the data bit
  372.                    size, only four have ever been used historically and
  373.                    only two are commonly used today. The use of the
  374.                    command-value format is recommended to preserve
  375.                    consistency with other commands. It also reduces the
  376.                    number of commands defined in the protocol, and
  377.                    allows for future expansion.
  378.  
  379.      IAC SB COM-PORT-OPTION SET-PARITY <value> IAC SE
  380.        This command is sent by the client to the access server to set
  381.        the parity.  The command can also be sent to query the current
  382.        parity. The value is one octet (byte). The value is an index into
  383.        the following value table:
  384.  
  385.             Value      Parity [1]
  386.               0           Request Current Data Size
  387.               1           NONE
  388.               2           ODD
  389.               3           EVEN
  390.               4           MARK
  391.  
  392.  
  393.  
  394. Clark                         Experimental                      [Page 7]
  395.  
  396. RFC 2217          Telnet Com Port Control Option            October 1997
  397.  
  398.  
  399.               5           SPACE
  400.               6-127       Available for Future Use
  401.  
  402.        Discussion: There are only five possible values for parity
  403.                    commonly used today. The use of the command-value
  404.                    format is recommended to preserve consistency with
  405.                    other commands.
  406.  
  407.      IAC SB COM-PORT-OPTION SET-STOPSIZE <value> IAC SE
  408.        This command is sent by the client to the access server to set
  409.        the number of stop bits. The command can also be sent to query
  410.        the current stop bit size. The value is one octet (byte). The
  411.        value is an index into the following value table:
  412.  
  413.            Value      Stop Bit Size
  414.              0           Request Current Data Size
  415.              1           1
  416.              2           2
  417.              3           1.5
  418.              4-127       Available for Future Use
  419.  
  420.        Discussion: Stop bit 1.5 is supported by most com port hardware
  421.                    only if data size is set to 5 bits. It is not
  422.                    commonly used.
  423.  
  424. 3. Special Com Port Control Commands
  425.  
  426.    The client can send this command to the access server at any time
  427.    and multiple times throughout the Telnet session. Each command
  428.    transmitted from the client to the access server is acknowledged
  429.    with a confirmation of the command and the actual value set. The
  430.    client should expect a response within a reasonable time (such as
  431.    twice the delay acknowledgment timer). The client may wish to
  432.    resend any command which is not acknowledged or terminate the
  433.    session.
  434.  
  435.      IAC SB COM-PORT-OPTION SET-CONTROL <value> IAC SE
  436.        This command is sent by the client to the access server to set
  437.        special com port options. The command can also be sent to query
  438.        the current option value. The value is one octet (byte). The
  439.        value is an index into the following value table:
  440.  
  441.            Value      Control Commands
  442.              0           Request Com Port Flow Control Setting
  443.                            (outbound/both)
  444.              1           Use No Flow Control (outbound/both)
  445.              2           Use XON/XOFF Flow Control (outbound/both)
  446.              3           Use HARDWARE Flow Control (outbound/both)
  447.  
  448.  
  449.  
  450. Clark                         Experimental                      [Page 8]
  451.  
  452. RFC 2217          Telnet Com Port Control Option            October 1997
  453.  
  454.  
  455.              4           Request BREAK State
  456.              5           Set BREAK State ON
  457.              6           Set BREAK State OFF
  458.              7           Request DTR Signal State
  459.              8           Set DTR Signal State ON
  460.              9           Set DTR Signal State OFF
  461.             10           Request RTS Signal State
  462.             11           Set RTS Signal State ON
  463.             12           Set RTS Signal State OFF
  464.             13           Request Com Port Flow Control Setting (inbound)
  465.             14           Use No Flow Control (inbound)
  466.             15           Use XON/XOFF Flow Control (inbound)
  467.             16           Use HARDWARE Flow Control (inbound)
  468.             17           Use DCD Flow Control (outbound/both)
  469.             18           Use DTR Flow Control (inbound)
  470.             19           Use DSR Flow Control (outbound/both)
  471.             20-127       Available for Future Use
  472.  
  473.        Discussion: Flow control options were divided into inbound and
  474.                    outbound to take full advantage of existing
  475.                    programming interfaces and access server
  476.                    capabilities.
  477.  
  478.        Discussion: The outbound values should set flow control for both
  479.                    outbound and inbound.  If inbound is to be, or can
  480.                    be, set separately it should be done after the
  481.                    setting of the outbound value.
  482.  
  483.        Discussion: If the access server is not able to set inbound flow
  484.                    control differently from the outbound flow control,
  485.                    it should ignore the inbound flow control commands
  486.                    and set the flow control option based on the outbound
  487.                    flow control commands only.
  488.  
  489.      IAC SB COM-PORT-OPTION SET-LINESTATE-MASK <value> IAC SE
  490.        This command is sent by the client to the access server to set a
  491.        bit mask for the sending of the NOTIFY-LINESTATE option (see
  492.        section 4).  When the LINESTATE changes on the access server, the
  493.        access server will "AND" the new LINESTATE with the LINESTATE-
  494.        MASK.  If the result is not zero, the access server will send the
  495.        result of the "AND" as the value in a NOTIFY-LINESTATE com port
  496.        option. If more than one bit satisfies the LINESTATE-MASK, only
  497.        one NOTIFY-LINESTATE, with all the satisfying bits, will be sent
  498.        to the client.  The SET-LINESTATE-MASK may be any combination of
  499.        bits as listed below.  These are the same bit values used in the
  500.        NOTIFY-LINESTATE option.  The SET-LINESTATE-MASK values are based
  501.        on the most popular UART (com port control chip) in use [1].
  502.  
  503.  
  504.  
  505.  
  506. Clark                         Experimental                      [Page 9]
  507.  
  508. RFC 2217          Telnet Com Port Control Option            October 1997
  509.  
  510.  
  511.            Bit Position     Value     Meaning
  512.               7              128         Time-out Error
  513.               6               64         Transfer Shift Register Empty
  514.               5               32         Transfer Holding Register Empty
  515.               4               16         Break-detect Error
  516.               3                8         Framing Error
  517.               2                4         Parity Error
  518.               1                2         Overrun Error
  519.               0                1         Data Ready
  520.  
  521.        Discussion: The SET-LINESTATE-MASK value of 0 will prevent the
  522.                    access server from sending NOTIFY-LINESTATE options
  523.                    to the client.
  524.  
  525.        Discussion: The SET-LINESTATE-MASK value of 255 will allow the
  526.                    access server to send a NOTIFY-LINESTATE option to
  527.                    the client each time the LINESTATE changes on the
  528.                    access server.
  529.  
  530.        Discussion: The initial LINESTATE-MASK at the access server is 0.
  531.  
  532.        Discussion: The client does not have to send a new
  533.                    SET-LINESTATE-MASK after receiving a NOTIFY-
  534.                    LINESTATE.  The LINESTATE-MASK on the access server
  535.                    is retained until set by the client or reset at the
  536.                    start of a new Telnet session.
  537.  
  538.      IAC SB COM-PORT-OPTION SET-MODEMSTATE-MASK <value> IAC SE
  539.        This command is sent by the client to the access server to set a
  540.        bit mask for the sending of the NOTIFY-MODEMSTATE option (see
  541.        section 4).  When the MODEMSTATE changes on the access server,
  542.        the access server will "AND" the new MODEMSTATE with the
  543.        MODEMSTATE-MASK.  If the result is not zero, the access server
  544.        will send the result of the "AND" as the value in a NOTIFY-
  545.        MODEMSTATE com port option. If more than one bit satisfies the
  546.        MODEMSTATE-MASK, only one NOTIFY-MODEMSTATE, with all the
  547.        satisfying bits, will be sent to the client.  The SET-
  548.        MODEMSTATE-MASK may be any combination of bits as listed below.
  549.        These are the same bit values used in the NOTIFY-MODEMSTATE
  550.        option.  The SET-MODEMSTATE-MASK values are based on the most
  551.        popular UART (com port control chip) in use [1].
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Clark                         Experimental                     [Page 10]
  563.  
  564. RFC 2217          Telnet Com Port Control Option            October 1997
  565.  
  566.  
  567.            Bit Position     Value     Meaning
  568.               7              128        Receive Line Signal Detect
  569.                                         (also known as Carrier Detect)
  570.               6               64        Ring Indicator
  571.               5               32        Data-Set-Ready Signal State
  572.               4               16        Clear-To-Send Signal State
  573.               3                8        Delta Receive Line Signal Detect
  574.               2                4        Trailing-edge Ring Detector
  575.               1                2        Delta Data-Set-Ready
  576.               0                1        Delta Clear-To-Send
  577.  
  578.        Discussion: The SET-MODEMSTATE-MASK value of 0 will prevent the
  579.                    access server from sending NOTIFY-MODEMSTATE options
  580.                    to the client.
  581.  
  582.        Discussion: The SET-MODEMSTATE-MASK value of 255 will allow the
  583.                    access server to send a NOTIFY-MODEMSTATE option to
  584.                    the client each time the MODEMSTATE changes on the
  585.                    access server.
  586.  
  587.        Discussion: The initial MODEMSTATE-MASK at the access server
  588.                    is 255.
  589.  
  590.        Discussion: The client does not have to send a new
  591.                    SET-MODEMSTATE-MASK after receiving a NOTIFY-
  592.                    MODEMSTATE.  The MODEMSTATE-MASK on the access server
  593.                    is retained until set by the client or reset at the
  594.                    start of a new Telnet session.
  595.  
  596.      IAC SB COM-PORT-OPTION PURGE-DATA <value> IAC SE
  597.        This command is sent by the client to the access server to
  598.        instruct the access server to immediately clear all data from the
  599.        buffer or buffers referenced by the value.  The value is one
  600.        octet (byte).  The value is an index into the following value
  601.        table:
  602.  
  603.            Value      Purge Data Buffer
  604.              0           Available for Future Use
  605.              1           Purge access server receive data buffer
  606.              2           Purge access server transmit data buffer
  607.              3           Purge both the access server receive data
  608.                          buffer and the access server transmit data
  609.                          buffer
  610.              4-127       Available for Future Use
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Clark                         Experimental                     [Page 11]
  619.  
  620. RFC 2217          Telnet Com Port Control Option            October 1997
  621.  
  622.  
  623. 4. Notification of Com port and Modem Line Changes
  624.  
  625.    The access server can send these commands to the client any time
  626.    and multiple times throughout the Telnet session. The access
  627.    server should send the appropriate command to the client as soon
  628.    as the com port or modem line changes occurs.  The client does
  629.    not issue a response to these commands.
  630.  
  631.      IAC SB COM-PORT-OPTION NOTIFY-LINESTATE <value> IAC SE
  632.        The value is one octet (byte). The value is a bit level
  633.        composition made up from the value table below. Multiple bit
  634.        values may be set in a single transmission. The values are based
  635.        on the most popular UART (com port control chip) in use [1].
  636.  
  637.            Bit Position     Value     Meaning
  638.               7              128         Time-out Error
  639.               6               64         Transfer Shift Register Empty
  640.               5               32         Transfer Holding Register Empty
  641.               4               16         Break-detect Error
  642.               3                8         Framing Error
  643.               2                4         Parity Error
  644.               1                2         Overrun Error
  645.               0                1         Data Ready
  646.  
  647.  
  648.        Discussion: The LINESTATE is the line state of the UART on
  649.                    the access server.
  650.  
  651.      IAC SB COM-PORT-OPTION NOTIFY-MODEMSTATE <value> IAC SE
  652.        The value is one octet (byte). The value is a bit level
  653.        composition made up from the value table below. Multiple bit
  654.        values may be set in a single transmission. The values are based
  655.        on the most popular UART (com port control chip) in use [1].
  656.  
  657.            Bit Position     Value     Meaning
  658.               7              128        Receive Line Signal Detect
  659.                                         (also known as Carrier Detect)
  660.               6               64        Ring Indicator
  661.               5               32        Data-Set-Ready Signal State
  662.               4               16        Clear-To-Send Signal State
  663.               3                8        Delta Receive Line Signal Detect
  664.               2                4        Trailing-edge Ring Detector
  665.               1                2        Delta Data-Set-Ready
  666.               0                1        Delta Clear-To-Send
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Clark                         Experimental                     [Page 12]
  675.  
  676. RFC 2217          Telnet Com Port Control Option            October 1997
  677.  
  678.  
  679. 5. Flow Control
  680.  
  681.    The client and/or access server can send these commands any time and
  682.    multiple times throughout the Telnet session.
  683.  
  684.      IAC SB COM-PORT-OPTION FLOWCONTROL-SUSPEND IAC SE
  685.        The sender of this command is requesting that the receiver
  686.        suspend transmission of both data and commands until the
  687.        FLOWCONTROL-RESUME is transmitted by the sender.
  688.  
  689.      IAC SB COM-PORT-OPTION FLOWCONTROL-RESUME IAC SE
  690.        The sender of this command is requesting that the receiver resume
  691.        transmission of both data and commands.
  692.  
  693.        Discussion: Established Telnet sessions are initially in a
  694.                    resume state between the client and the access server
  695.                    and the access server and the client.  There is no
  696.                    need to send the resume command during session
  697.                    initialization.
  698.  
  699.        Discussion: Multiple concurrent suspend commands may be sent.
  700.                    Secondary suspend commands can be ignored.
  701.                    Transmission will resume with the sending of a single
  702.                    resume command.
  703.  
  704.        Discussion: The flow control option is designed to handle client
  705.                    to access server flow control for the Telnet session.
  706.                    This option has been added in deference to RFC 1372:
  707.                    Telnet Remote Flow Control Option [2].  RFC 1372 uses
  708.                    a simple character XON/XOFF technology to implement
  709.                    flow control.  This can lead to two problems.  First,
  710.                    the flow control characters may be valid data values.
  711.                    Second, the flow control characters may be used for
  712.                    end to end flow control (client application to remote
  713.                    dial up service).
  714.  
  715. 6. Security Considerations
  716.  
  717.    There are two security issues to discuss; authentication and
  718.    resetting resources.
  719.  
  720.    Authentication can follow either the Kerberos authentication protocol
  721.    established in RFC 1411 [3] or the SPX authentication protocol
  722.    established in RFC 1412 [4].
  723.  
  724.    Once the Telnet session between the client and the access server has
  725.    been terminated, the access server should ensure the connection to
  726.    the remote service is disconnected and the com port geometry (baud
  727.  
  728.  
  729.  
  730. Clark                         Experimental                     [Page 13]
  731.  
  732. RFC 2217          Telnet Com Port Control Option            October 1997
  733.  
  734.  
  735.    rate, data size, stop bits, parity, and flow control) is reset to a
  736.    factory or administrator defined configuration.  This ensures the com
  737.    port is in a known state and ready to receive the next client
  738.    session.  This will make operations more predicable and avoid
  739.    problems which might occur from starting a new session with random
  740.    com port configurations.
  741.  
  742. 7. Author's Address
  743.  
  744.   Glen Clark, Software Architect
  745.   Cisco Systems, Inc.
  746.   170 West Tasman Drive
  747.   San Jose, CA  96134
  748.   USA
  749.  
  750.   EMail:      glenc@cisco.com
  751.   WEB:        www.cisco.com
  752.  
  753. 8. Reference Section
  754.  
  755.    [1]  Joe Campbell. C Programmer's Guide to Serial Communications,
  756.         Second Edition. Indianapolis: SAMS Publishing, 1993. 213-224.
  757.  
  758.    [2]  Hedrick, C., and D. Borman, "Telnet Remote Flow Control Option",
  759.         RFC 1372, Cray Research, Inc., October 1992.
  760.  
  761.    [3]  Borman, D., "Telnet Authentication: Kerberos Version 4",
  762.         RFC 1411, Cray Research, Inc., January 1993.
  763.  
  764.    [4]  Alagappan, K., "Telnet Authentication: SPX",
  765.         RFC 1412, Digital Equipment Corporation, January 1993.
  766.  
  767.    [5]  D. E. Comer and David Stevens.  Internetworking with TCP/IP,
  768.         Volume III.  Prentice Hall, 1993.
  769.  
  770.    [6]  Andrew Margolis. The FAX Modem Sourcebook.  John Wiley & Sons.
  771.         1995.
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Clark                         Experimental                     [Page 14]
  787.  
  788.